跳到主要内容

【pdf】分析 Java 中反应式编程库的性能和成本

比较结果​

知道大家都更喜欢看结果,而不是比较过程

使用 scc 的反应式编程库的代码指标(不包括测试和文档)。​

LibraryJava 代码行数(LOC)文件数量Cyclomatic Complexity(CC)Cyclomatic complexity density (CC/KLOC)[3]
RxJava 3.0.1310031390711750117.13
Reactor 3.4.87285844413358183.34
Mutiny 1.0.0211773002840134.10
圈复杂度

圈复杂度(Cyclomatic Complexity):是一个衡量程序控制流复杂度的指标,主要用于评估代码的复杂性和可维护性。 它由Thomas J. McCabe在1976年提出,用于衡量程序中的独立路径数量,即代码中可能的不同执行路径的数量。 值通常是越小越好

Cyclomatic Complexity Density 是圈复杂度(Cyclomatic Complexity, CC)的一个扩展,用于评估代码的复杂度相对于代码量的比率。 它有助于识别代码中复杂度相对于其规模的分布情况,从而更好地理解代码的质量和可维护性。

单一操作符性能比较​

越多代表越好

Single Operation Pipelines
RxJavaMono
ReactorSingle, Maybe, Completable
MutinyUni
Individual OperatorsOperators
RxJavaSinglemap
ReactorMonomap
MutinyUnichain

单一直接变换​

越多代表越好

多重独立操作符​

越多代表越好

流的直接变换​

越多代表越好

文本处理​

越少代表越好

文本处理2​

越少代表越好

网络请求​

越少代表越好

网络请求2​

越少代表越好